/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package visualcbir.board;

import Grid.*;
import Grid.SubSet.Label;
import java.util.LinkedList;

/**
 *
 * @author robertopinho
 */
public interface CellItemInterface {

    public long getTime();

    public String getURL();

    
    //Persist Stuff
    public String toXML();
    
    
    //Extra Data Stuff
    public String getDataScalar();

    public double[] getVector();

    

    //Main Stuff
    public void setOnBoard(boolean b);
    public void setRow(Integer i);
    public void setCol(Integer j);
    public Integer getRow();
    public Integer getCol();
    public Double getDistance(CellItemInterface other);
    public boolean isOnBoard();
    
    //Hex Board third axis
    //public Integer getZed();
    //public void setZed(Integer zed);

    
    //"Real Position" stuff
    //public void updateRealPos(AbstractBoard board);
    public double getRealRow();
    public double getRealCol();
    
    //Content Stuff
    public String getLabel();  // item label
    public String getClassLabel(); // item class label
    public String getContentString();
    public LinkedList<itemDistanceRn> getCloseNeighbors(); 
    public LinkedList<itemDistanceRn> getRandomNeighbors();

    public void setTempValue(Double dist);
    public Double getTempValue();
    
    //Label Stuff
    public Label getAssignedLabel();
    public void setAssignedLabel(Label assignedLabel);
    
    
}
